/*
 * Stos.cpp
 *
 *  Created on: 23-03-2012
 *      Author: Hanna Sienkiewicz
 */

#include "Stos.h"
using namespace std;

int Stos::Dlugosc_stosu()
{
	return dl;
};

bool Stos::Pusta()
{
	if ( dl == 0)
	{
		return true;
	}
	else
	{
		return false;
	}
};

void Stos::wyczysc(){
	while(head!=NULL){
		Usun_pierwszy_element();
	}
}

//**********************************************************************

void Stos::Usun_pierwszy_element()
{
	elem *tmp;

	if (head == NULL)
	{
		cerr << "Stos jest pusty\n";
	}
	else
	{
		tmp = head;
		head = tmp->wsk_natepny;

		delete tmp;
		dl--;
	}
};

//**********************************************************************

void Stos::Zapelnij_stos()
{
	int n, i;
	cout << "Podaj liczbe losowych liczb\n";
	cin >> n;
	if(cin.fail()){cerr << "Blad to nie jest liczba!\n"; exit(1);}
	if (n <= 0)
	{
		cerr << "Liczba ma byc mniejsza od 0\n";
	}
	else
	{
		for (i = 0; i < n; i++)
		{
			Dodaj_element(rand()%n);
		}
	}
};

//**********************************************************************

void Stos::Wyswietl_szczyt_stosu()
{
	if (dl > 0)
	{
		cout << head->liczba << "\n";
	}
	else
	{
		cout << "Stos jest pusty\n";
	}
};

//**********************************************************************

void Stos::Dodaj_element(int n)
{
	elem *nowy;

	nowy = new elem;
	nowy->liczba = n;
	nowy->wsk_natepny = head;
	head = nowy;
	nowy = NULL;
	dl++;
};


